/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package appfacturacion;

import java.util.ArrayList;

/**
 *
 * @author operador
 */
public class AdmClientes {

    private ArrayList<Cliente> clientes;

    public AdmClientes(){
        // Inicializar la coleccion de clientes
        clientes = new ArrayList<Cliente>();
    }



    public void registrar(String codigo, String nombre)
            throws BusinessException {
        validarDatos(codigo,nombre);
        validarDuplicado(codigo);
        // Crear un nuevo cliente
        Cliente cliente = new Cliente(codigo, nombre);
        // Adicionar el nuevo cliente a la colección
        clientes.add(cliente);

    }

    public Cliente buscar(String codigo) {
        for(Cliente cliente : clientes)
            if (cliente.getCodigo().equals(codigo))
                return cliente;
        return null;
    }

    private void validarDatos(String codigo, String nombre)
            throws BusinessException {
        String mensaje = "";
        if (codigo == null || codigo.isEmpty())
            mensaje += "Codigo no puede ser nulo o vacio\n";
        if (nombre == null || nombre.isEmpty() )
            mensaje += "Nombre no puede ser nulo o vacio\n";
        if (! mensaje.isEmpty()){
            // Crear y Lanzar una excepción de negocio
            throw new BusinessException(mensaje);
        }
    }

    private void validarDuplicado(String codigo) throws BusinessException {
       if (buscar(codigo)!= null)  {
           String msg = "Codigo '"+codigo+"' ya existe.";
           throw new BusinessException(msg);
       }
    }
}
